Virtualization may be viewed as abstraction of some physical components into logical objects in order to allow running, for example, various operating systems concurrently and in isolation from other operating systems on one or more interconnected physical computer systems. Virtualization allows, for example, consolidating multiple physical servers into one physical server running multiple virtual machines (VMs) in order to improve the hardware utilization rate. Virtualization may be achieved by running a layer, often referred to as “hypervisor,” above the hardware and below the VMs. A hypervisor may run directly on the server hardware without an operating system beneath it or as an application running under a traditional operating system. A hypervisor may abstract the physical layer and present this abstraction to VMs to use, by providing interfaces between the underlying hardware and virtual devices of VMs.